Skip to content

updates for ebpf / full host profiling #29270

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

brantigua
Copy link

@brantigua brantigua commented May 9, 2025

What does this PR do? What is the motivation?

This PR is to add documentation for our new profiler: eBPF / full host. This includes general explanations, set up instructions, and troubleshooting.

  • Make the page private.

Merge instructions

Merge readiness:

  • Ready for merge

For Datadog employees:
Merge queue is enabled in this repo. Your branch name MUST follow the <name>/<description> convention and include the forward slash (/). Without this format, your pull request will not pass in CI, the GitLab pipeline will not run, and you won't get a branch preview. Getting a branch preview makes it easier for us to check any issues with your PR, such as broken links.

If your branch doesn't follow this format, rename it or create a new branch and PR.

To have your PR automatically merged after it receives the required reviews, add the following PR comment:

/merge

Additional notes

@brantigua brantigua requested review from a team as code owners May 9, 2025 18:43
@github-actions github-actions bot added Architecture Everything related to the Doc backend Images Images are added/removed with this PR labels May 9, 2025
@rtrieu rtrieu added the editorial review Waiting on a more in-depth review label May 9, 2025
@rtrieu
Copy link
Contributor

rtrieu commented May 9, 2025

Created an editorial card for in-depth docs review.

Copy link
Member

@Gandem Gandem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, left a couple comments! 🙇

brantigua and others added 4 commits May 14, 2025 11:10
Co-authored-by: Nayef Ghattas <11560964+Gandem@users.noreply.github.com>
Co-authored-by: Nayef Ghattas <11560964+Gandem@users.noreply.github.com>
Copy link
Contributor

@brett0000FF brett0000FF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! Left a few edits and suggestions. Let me know if you have any questions. Thanks! 🚀

Comment on lines +3 to +7
code_lang: ebpf
type: multi-code-lang
code_lang_weight: 90
aliases:
- /tracing/profiler/enabling/ebpf/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
code_lang: ebpf
type: multi-code-lang
code_lang_weight: 90
aliases:
- /tracing/profiler/enabling/ebpf/
private: true

Let's remove this for now so we can make the page private.

@@ -0,0 +1,107 @@
---
title: Enabling the eBPF Profiler
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: Enabling the eBPF Profiler
title: Enabling the Full-Host Profiler

What do you think about framing this as this as the full host profiler instead of eBPF?

Comment on lines +17 to +19
<div class="alert alert-warning">
<code>ebpf</code> is in beta. Datadog recommends evaluating the profiler in a non-sensitive environment before deploying in production.
</div>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<div class="alert alert-warning">
<code>ebpf</code> is in beta. Datadog recommends evaluating the profiler in a non-sensitive environment before deploying in production.
</div>
{{< callout url="" btn_hidden="true" header="Try the Full-Host Profiler Preview!">}}
The Full-Host Profiler is in Preview.
{{< /callout >}}

<code>ebpf</code> is in beta. Datadog recommends evaluating the profiler in a non-sensitive environment before deploying in production.
</div>

The eBPF profiler is our eBPF-based host profiler built on OpenTelemetry and designed to send profiling data to the Datadog backend via the Datadog Agent. It supports symbolication for compiled languages and is optimized for containerized environments like Docker and Kubernetes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The eBPF profiler is our eBPF-based host profiler built on OpenTelemetry and designed to send profiling data to the Datadog backend via the Datadog Agent. It supports symbolication for compiled languages and is optimized for containerized environments like Docker and Kubernetes.
The Full-Host Profiler is an eBPF-based profiling solution built on OpenTelemetry that sends profiling data to Datadog using the Datadog Agent. It supports symbolication for compiled languages and is optimized for containerized environments such as Docker and Kubernetes.
### Use cases
The Full-Host Profiler is particularly valuable for:
- Profiling open-source software components that aren't instrumented with Datadog's tracing libraries.
- Analyzing performance across multi-language processes and runtimes.
- Identifying resource bottlenecks at the host level, including detection of noisy neighbor processes.

I think a use cases section would be helpful. What do you think?

: TBD

Debugging information
: Symbols should be available locallly or can be uploaded in CI via `datadog-ci`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
: Symbols should be available locallly or can be uploaded in CI via `datadog-ci`
: Symbols should be available locallly or can be uploaded in CI with `datadog-ci`


## Not sure what to do next?

The [Getting Started with Profiler][6] guide takes a sample service with a performance problem and shows you how to use Continuous Profiler to understand and fix the problem.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The [Getting Started with Profiler][6] guide takes a sample service with a performance problem and shows you how to use Continuous Profiler to understand and fix the problem.
After installing the Full-Host Profiler, see the [Getting Started with Profiler][6] to learn how to use Continuous Profiler to identify and fix performance problems.


TBD

## Not sure what to do next?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Not sure what to do next?
## What's next?


The [Getting Started with Profiler][6] guide takes a sample service with a performance problem and shows you how to use Continuous Profiler to understand and fix the problem.

## Further Reading
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Further Reading
## Further reading


{{< partial name="whats-next/whats-next.html" >}}

[2]: shttps://github.com/DataDog/dd-otel-host-profiler/releases/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[2]: shttps://github.com/DataDog/dd-otel-host-profiler/releases/
[2]: https://github.com/DataDog/dd-otel-host-profiler/releases/

@@ -17,8 +17,8 @@ The following tables summarize the features available for each language runtime.

To use the Datadog Profiler, use at least the minimum versions summarized in the following table. For specific profile type availability by version, see [Profile types](#profile-types).

| | [Java][1] | [Python][2] | [Go][3] | [Ruby][4] | [Node.js][5] | [.NET][6] | [PHP][7] | [Rust/C/C++][8] |
|-----------------------------------|:------------:|:----------------:|:-------------:|:--------------:|:-------------:|:-----------------------------------------------------------------------:|:-------------:|:---------------:|
| | [Java][1] | [Python][2] | [Go][3] | [Ruby][4] | [Node.js][5] | [.NET][6] | [PHP][7] | [Rust/C/C++][8] | [eBPF][9] |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want to make this page private, we should note that this is in Preview here or remove it for now.

@Gandem Gandem self-requested a review May 15, 2025 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Architecture Everything related to the Doc backend editorial review Waiting on a more in-depth review Images Images are added/removed with this PR okr11
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants